package com.ssyc.common.manager;

import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadmoreListener;

/**
 * SmartRefreshLayout的通用设置类
 * Created by Administrator on 2018/1/19 0019.
 */

public class SrfManager {

    /**
     * 设置SmartRrefreshLayout的属性方法
     *
     * @param srl
     * @param listener
     */
    public static void setSmart(SmartRefreshLayout srl, final OnRefreshListener listener) {
        if (srl != null) {
            srl.setEnableAutoLoadmore(true);//开启自动加载更多
//            srl.setEnableLoadmore();//关闭加载更多
//            srl.autoLoadmore();//自动加载更多
//            srl.autoRefresh();//自动刷新
//            srl.setFooterHeight(80);//Footer标准高度（显示上拉高度>=标准高度 触发加载）
            srl.setFooterHeightPx(120);//同上-像素为单位
//            srl.setEnableRefresh(true);//是否启用下拉刷新功能
//            srl.setEnableLoadmore(true);//是否启用上拉加载功能
//            srl.setEnableAutoLoadmore(true);//是否启用列表惯性滑动到底部时自动加载更多

//            srl.finishRefresh();//结束刷新
//            srl.finishLoadmore();//结束加载
//            srl.finishRefresh(3000);//延迟3000毫秒后结束刷新
//            srl.finishLoadmore(3000);//延迟3000毫秒后结束加载
//            srl.finishRefresh(false);//结束刷新（刷新失败）
//            srl.finishLoadmore(false);//结束加载（加载失败）
//            srl.finishLoadmoreWithNoMoreData();//完成加载并标记没有更多数据 1.0.4
//            srl.resetNoMoreData();//恢复没有更多数据的原始状态 1.0.4

            //是否在列表不满一页时候开启上拉加载功能
            srl.setEnableLoadmoreWhenContentNotFull(false);

            //设置加载数据完成后显示数据加载完成后的布局
            srl.setEnableFooterFollowWhenLoadFinished(false);
            srl.setOnRefreshListener(new com.scwang.smartrefresh.layout.listener.OnRefreshListener() {
                @Override
                public void onRefresh(RefreshLayout refreshlayout) {
                    if (listener != null) {
                        listener.onRefresh(refreshlayout);
                    }
                }
            });

            srl.setOnLoadmoreListener(new OnLoadmoreListener() {
                @Override
                public void onLoadmore(RefreshLayout refreshlayout) {
                    if (listener != null) {
                        listener.onLoadmore(refreshlayout);
                    }
                }
            });
        }
    }

    /**
     * 同时监听下拉刷新和加载更多
     */
    public interface OnRefreshListener {
        void onRefresh(RefreshLayout refreshlayout);

        void onLoadmore(RefreshLayout refreshlayout);
    }

    /*-------------------------------仅仅使用SmartRefreshLayout的下拉刷新功能--------------------------------------------------------------------*/

    /**
     * 仅仅使用SmartRefreshLayout的下拉刷新功能
     *
     * @param srl
     * @param listener
     */
    public static void setSmartByPullListener(SmartRefreshLayout srl, final OnPullRefreshListener listener) {
        if (srl != null) {
            srl.setEnableAutoLoadmore(false);//关闭自动加载更多
            if (null != listener) {
                srl.setEnableRefresh(true);//启用下拉刷新功能
            } else {
                srl.setEnableRefresh(false);//启用下拉刷新功能
            }
            srl.setEnableLoadmore(false);//关闭加载更多功能
            srl.setOnRefreshListener(new com.scwang.smartrefresh.layout.listener.OnRefreshListener() {
                @Override
                public void onRefresh(RefreshLayout refreshlayout) {
                    if (listener != null) {
                        listener.onRefresh(refreshlayout);
                    }
                }
            });
        }
    }

    /**
     * 只使用SmartRefreshLayout的下拉刷新功能,加载更多功能使用BaseRecycerViewHelper来实现
     */
    public interface OnPullRefreshListener {
        void onRefresh(RefreshLayout refreshlayout);
    }
}
